1. Field of the Invention
The invention relates in general to an apparatus for reading signals, and more particularly to an apparatus for reading keyboard-commands of a portable computer.
2. Description of the Related Art
In the past few years, the development of the portable computer technology has been very vigorous. Because of its high mobility, the portable computer, commonly called the notebook computer, has become an indispensable tool for the business individual.
In the computer system, the peripheral input/output device connects the user and the computer host. The user can input commands into the computer host through the peripheral input device. Each command may be a character or a function. After receiving the commands, the computer host will operate according to the commands. Among all of the present peripheral input devices of the computer system, the keyboard is the most essential device. A keyboard comprises a number of keyboard buttons and each keyboard button corresponds to a command. Therefore, each keyboard button corresponds to a character or a function. In addition to the keyboard buttons, the keyboard also includes an apparatus for reading keyboard-commands. When the user pressing down the keyboard button, the apparatus for reading keyboard-commands can output a digital signal corresponded to the keyboard button from the keyboard to the computer host. The computer host will operate according to the command given by the user through pressing down the keyboard buttons of the keyboard. Therefore, the apparatus for reading keyboard-commands is used for transferring an input command to the corresponding digital signal and delivering the digital signal to the computer host.
FIG. 1 shows a block diagram of a conventional apparatus for reading the keyboard-commands of the portable computer. In the portable computer system, the keyboard is controlled by an embedded controller (EC) 102. The embedded controller 102 is substantially a microprocessor, which comprises a number of internal devices such as a read-only memory (ROM), a random access memory (RAM), registers, and an input/output interface. By designing complicated command codes in the embedded controller 102, the embedded controller 102 is capable of performing various complicated functions according to an external clock signal (CK). The conventional apparatus for reading keyboard-commands comprises an embedded controller 102, a decoder 104, and a multiplexer 106, as shown in FIG. 1.
The process of reading the keyboard-commands by the conventional apparatus is briefly described as follows. The clock signal (CK) is inputted to the decoder 104. Therefore, the decoder 104 can operate synchronously with the embedded controller 102. The embedded controller 102 outputs the control signals (cs) to the decoder 104 periodically. Each of the control signals is a four-bit digital signal. The embedded controller 102 outputs one of the control signals each clock period according to the clock signal (CK). The magnitude of the control signals (cs) outputted from the embedded controller 102 respectively is in an increasing order from (0000)2 to (1111)2 in binary format, or from 0 to 15 in decimal format. The first control signal (cs) (0000)2 is outputted in the first clock period when the embedded controller 102 receives the first clock signal (CK). The second control signal (cs) (0001)2 is outputted in the second clock period when the embedded controller 102 receives the second clock signal (CK). All other control signals (cs) are outputted in turn in this manner, until the last control signal (cs) (1111)2 is outputted from the embedded controller 102. Then in the next clock period, the control signal (cs) outputted from the embedded controller 102 is back to (0000)2 again. The embedded controller 102 periodically outputs the control signals (cs) to the decoder 104 in the method described above. The decoder 104 includes 4 control signal input nodes (CS) coupled to the corresponding control signal output node (EO) of the embedded controller 102 respectively. When the embedded controller 102 outputs the control signal (cs), each bit of the control signal (cs) is outputted in parallel from the corresponding signal output node (EO) of the embedded controller 102 to the corresponding signal input node (CS) of the decoder 104.
FIG. 2 shows the timing chart of the scan-input signals outputted from the decoder 104. The decoder 104 includes 16 signal output nodes labeled SO0, SO1, SO2, . . . , and SO15, respectively, as shown in FIG. 1. The decoder 104 is used for outputting the scan-input signal (si) from the corresponding signal output node (SO) according to the control signal (cs) received in the clock period. The decoder 104 receives the control signals (cs) in increasing order from (0000)2 to (1111)2 in binary format, or from 0 to 15 in decimal format, periodically. Upon receiving the control signal (cs) (0000)2, the decoder 104 outputs the scan-input signal (si) from the first signal output node (SO0). Upon receiving the control signal (cs) (0001)2, the decoder 104 outputs the scan-input signal (si) from the second signal output node (SO1). The scan-input signal (si) is outputted from the corresponding signal output nodes (SO) of decoder 104 periodically for each clock period in the method described above. Therefore, the phase of each scan-input signal (si) outputted from the decoder 104 is different. The timing chart of the scan-input signals (si) outputted from 16 signal output nodes (SO) of the decoder 104 respectively is shown in FIG. 2.
FIGS. 3A˜3B show the diagram of the keyboard-matrix circuit 108 of the conventional apparatus for reading keyboard-commands of the portable computer 100. The keyboard-matrix circuit 108 of the keyboard comprises 16 horizontal circuit lines 302 and 8 vertical circuit lines 304 set on a soft pad. Each horizontal circuit line 302 perpendicularly intersects each vertical circuit line 304 to form each node 306 respectively, as shown in FIG. 3A. Therefore, the keyboard-matrix circuit includes 128 nodes 306. Each horizontal circuit line 302 is perpendicular to each vertical circuit line 304, respectively, without coupling to each other directly, as shown in FIG. 3B.
FIGS. 4A˜4B show the cross-sectional view of the node in the keyboard-matrix circuit. The location of each keyboard button 401 is corresponded to a node 306 in the keyboard-matrix circuit. The bottom of each keyboard button 401 comprises a layer of electrically conductive black lead 402. In the normal situation, the keyboard button 401(1) is not pressed down and the horizontal circuit line 302 and the vertical circuit line 304 are disconnected from each other, as shown in FIG. 4A. However, when the keyboard button 401(2) is pressed down by the user, the black lead layer 402 in the bottom of the pressed keyboard button 401(2) is connected to the horizontal circuit line 302 and the vertical circuit line 304 respectively, as shown in FIG. 4B. Because the black lead layer 402 is electrically conductive, the horizontal circuit line 302 and the vertical circuit line 304 are electrically coupled to each other through the black lead layer 402 when the keyboard button 401(2) is pressed down. To sum up, the horizontal circuit line 302 and the vertical circuit line 304 in the keyboard-matrix circuit 108 are not coupled to each other directly in the normal situation when the keyboard button 401 is not pressed down. But when the keyboard button 401 is pressed down, the horizontal circuit line 302 and the vertical circuit line 304 in the keyboard-matrix circuit 108 are electrically coupled to each other through the black lead layer 402 of the pressed keyboard button 401. This form of coupling relation between the horizontal circuit line 302 and the vertical circuit line 304 is called normally open. Each horizontal circuit line 302 is coupled in the form of normally open to each vertical circuit line 304, respectively.
FIGS. 5A˜5B show the timing chart of the scan-input signal (si) and the scan-output signal (so) corresponding to the nodes 401(1) and 401(2), respectively, as shown in FIGS. 4A˜4B. If the keyboard button 401(1) of the node 306 is not pressed down, as shown in FIG. 4A, the horizontal circuit line 302 and the vertical circuit line 304 in the keyboard-matrix circuit 108 are not electrically coupled to each other and the keyboard-matrix circuit 108 will not output the scan-output signal (so) according to the scan-input signal (si). The timing chart of the scan-input signal (si) and the scan-output signal (so) in this situation is shown in FIG. 5A. If the keyboard button 401(2) of the node 306 is pressed down, as shown in FIG. 4B, the horizontal circuit line 302 and the vertical circuit line 304 in the keyboard-matrix circuit 108 are electrically coupled to each other through the black lead layer 402 of the keyboard button 401(2) and a scan-output signal (so) is outputted from the decoder 104 according to the scan-input signal (si). The timing chart of the scan-input signal (si) and the scan-output signal (so) in this situation is shown in FIG. 5B.
FIG. 6 shows the timing chart of the scan-input signals (si) and the scan-output signals (so) of the keyboard-matrix circuit when one of the keyboard buttons is pressed down. For example, if one of the keyboard buttons is pressed down and the node corresponding to the pressed keyboard button comprises the third horizontal circuit line and the fourth vertical circuit line, the scan-input signal (si2) outputted from the third signal output node (SO2) of the decoder 104 is delivered through the third horizontal circuit line, and the layer of black lead of the pressed keyboard button to the fourth vertical circuit line. Therefore, the scan-output signal (so3) is outputted from the fourth vertical circuit line of the keyboard-matrix circuit, as shown in FIG. 6.
The clock signal (CK) is inputted to the multiplexer 106. Therefore, the multiplexer 106 can operate synchronously with the embedded controller 102. The multiplexer 106 includes 8 signal input nodes (SI). Each signal input node is coupled to the corresponding vertical circuit line of the keyboard scan matrix 108 respectively. The scan-output signal (so) is outputted from one of the vertical circuit lines to the corresponding signal input node of the multiplexer 106. When receiving the scan-output signal (so), the multiplexer 106 will deliver a multiplexer output signal (sm) to the embedded controller 102 to tell the embedded controller 102 which signal input node (SI) of the multiplexer 106 receives the scan-output signal (so) outputted from the keyboard-matrix circuit 108.
The embedded controller 102 knows which vertical circuit line is electrical-conductive according to the multiplexer output signal (sm) and which horizontal circuit line is electrically-conductive according to the time that the embedded controller 102 receives the multiplexer output signal (sm). Because the embedded controller 102, the decoder 104, and the multiplexer 106 operate synchronously according to the same clock signal (CK), the embedded controller 102 can know the address of electrically-conductive horizontal circuit line according to the time of receiving the multiplexer output signal (sm). Therefore, the embedded controller 102 can know the address of the pressed keyboard button in the keyboard-matrix circuit in this manner. Then, the embedded controller 102 outputs a command data signal (SDATA) corresponding to the pressed keyboard button. The corresponding relation between the keyboard button and the command data signal is stored in the memory of the embedded controller 102 in advance. The command data signal (SDATA) is outputted serially to the computer host. The conventional apparatus for reading keyboard-commands of a portable computer operates in the above-mentioned manner to transfer an input command given by the user to the corresponding digital command data signal and then to deliver the command data signal to the computer host.
The conventional apparatus for reading keyboard-commands of the portable computer has the following disadvantages. First, the embedded controller is substantially a central processing unit (CPU). By designing complicated command sets in the embedded controller, the embedded controller is capable of performing more complicated functions than that of the common logic circuit. Therefore, the embedded controller is much more expensive than the common logic circuit. However, it is unnecessary to use such a complicated embedded controller to execute the keyboard-command reading task. Instead of the embedded controller, the keyboard-command reading task can be executed by properly designed logic devices.
Second, the conventional apparatus for reading keyboard-commands is controlled by the computer host through the basic input/output system (BIOS). The manufacturer of the portable computer must pay the royalty to the manufacturer of the BIOS in order to get the license for using the command codes of the BIOS. After getting the license, the manufacturer of the portable computer must design software command codes according to the command codes of the BIOS to control the embedded controller's execution of the keyboard-commands reading task. In addition, the memory capacity of the ROM and RAM in the embedded controller is limited. External memory must be used when the embedded controller executes the keyboard-commands reading task. The software command codes must be designed for the embedded controller to control the external memory executing the keyboard-commands reading task. Therefore, the time and money cost is high when using the embedded controller to execute the keyboard-commands reading task.
Third, the embedded controllers manufactured by different manufacturers are incompatible. Each manufacturer of the portable computer usually cooperates with one of the embedded controller manufacturers in order to decrease the cost of royalty and software command codes designing. However, the embedded controller manufacturers are fewer than the portable computer manufacturers, and the embedded controllers supplied by the embedded controller manufacturer are limited. When the demand for the portable computer manufacturers increases, the embedded controller manufacturer can supply only a limited number of embedded controllers to each portable computer manufacturer. The shortage of the embedded controller supply happens unpredictably and it has a great influence on the output number of the portable computer products of the portable computer manufacturers. If the shortage of the embedded controller supply occurs, the portable computer manufacturers have no choice, but to change to the embedded controller manufactured by another manufacturer. Additional time and money cost must be paid by the manufacturer of the portable computer for the design of new software command codes to control the new embedded controller.
Fourth, in addition to delivering the keyboard-commands of the portable computer, the embedded controller has other tasks, such as delivering the power status of the smart battery or controlling the CD drive playing. Therefore, the performance and efficiency of the embedded controller in executing the keyboard-commands reading task may not be sufficient because the embedded controller has to execute many other tasks at the same time.
To sum up, the conventional apparatus for reading the keyboard-commands of the portable computer has the following disadvantages. First, the embedded controller is relatively expensive. Second, the embedded controllers manufactured by different manufacturers are incompatible. Third, the shortage of the embedded controller supply occurs unpredictably and the cost of changing to a new embedded controller is high. Fourth, the performance and efficiency of the embedded controller is not sufficient in executing the keyboard-commands reading task.